package JBD.Dico;
import java.util.ArrayList;

public class DicoArrayList{
	private ArrayList<Mot> motFREN = new ArrayList<Mot>();
	  
	
	DicoArrayList(){
		Mot nouveau = new Mot("Bonjour", "Hello");
		motFREN.add(nouveau);		
		
	}
	
	DicoArrayList(String fr, String en){
		Mot nouveau = new Mot(fr,en);
		motFREN.add(nouveau);		
		
	}
	
	//Observateurs
	public String traduireFREN(String recherche){
		for(int i=0; i<motFREN.size(); i++){
			if(motFREN.get(i).getmotFR()== recherche)
				return motFREN.get(i).getmotEN();				
		}
		return "Rien trouve";
	}
	
	public String traduireENFR(String recherche){
		for(int i=0; i<motFREN.size(); i++){
			if(motFREN.get(i).getmotEN()== recherche)
				return motFREN.get(i).getmotFR();				
		}
		return "Not found";
	}
	//Ajout d'un mot dans le dictionnaire
	public void add(String fr, String en){
		Mot nouveau = new Mot(fr,en);
		motFREN.add(nouveau);
		System.out.println(fr + " et " + en + " ont bien ete ajoutes.");
	}
	
	
	//Fonction de trie en fonction du mot Anglais
		public void triEN(){
			Mot tmp;
			int i, j;
			//fonction de tri a bulle (lourd...)
			for(j=0; j<motFREN.size()-1;j++){
				for(i=0;i<motFREN.size()-1;i++){
					//si la chaine en i est plus grande que la chaine en i+1, on les inverse (grace a l'index)
					if((motFREN.get(i).toStringENFR().compareTo(motFREN.get(i+1).toStringENFR()))>0){
						tmp=motFREN.get(i);
						motFREN.set(i,motFREN.get(i+1));
						motFREN.set(i+1,tmp);
						//System.out.println("boucle " + i); tester quand on rentre dans la boucle if
					}
				}
			}
			System.out.println("Le dictionnaire a ete trie.");
		}
		
		
	//Fonction de trie en fonction du mot Francais
	public void triFR(){
		Mot tmp;
		int i, j;
		for(j=0; j<motFREN.size()-1;j++){
			for(i=0;i<motFREN.size()-1;i++){
				if((motFREN.get(i).toStringFREN().compareTo(motFREN.get(i+1).toStringFREN()))>0){
					tmp=motFREN.get(i);
					motFREN.set(i,motFREN.get(i+1));
					motFREN.set(i+1,tmp);
				}
			}
		}
		System.out.println("Le dictionnaire a ete trie.");
	}

	
	
	public void afficheFR(){
		int j;
		for(j=0; j<motFREN.size();j++){
			System.out.println(motFREN.get(j).toStringFREN());
		}					
	}
	
	public void afficheEN(){
		int j;
		for(j=0; j<motFREN.size();j++){
			System.out.println(motFREN.get(j).toStringENFR());
		}					
	}
	//Faire un trie avec toString
	/*public String toString(){
		
	}
	*/
	
	
}